package com.xzk.ExpressInnWeb.controller.admin;

import com.xzk.ExpressInnWeb.bean.Message;
import com.xzk.ExpressInnWeb.service.AdminService;
import com.xzk.ExpressInnWeb.util.JsonUtil;
import com.xzk.ExpressInnWeb.web.mvc.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;

public class AdminController {

    /**
     * 参数在req中，
     * 参数在SpringMVC中也可以封装在方法中
     * @param req 请求
     * @param resp 响应
     * @return 返回前端的内容
     */
    @ResponseBody("/login.do")
    public String login(HttpServletRequest req, HttpServletResponse resp) {
        // 1. 接收参数
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        // 2. 调用Service传参数，并获取结果
        boolean result = AdminService.login(username, password);
        // 3. 根据结果准备不同的返回数据
        Message msg = null;
        if (result){
            msg = new Message(0,"登录成功");
            // 返回的内容转换为JSON后：{status:0,result:"登录成功"}
            // 记录登录事件和登录IP
            Date date = new Date();
            String ip = req.getRemoteAddr();
            // 注意：localhost的ip一般以0:xxx开头
            AdminService.updateLoginTimeAndIP(username,date,ip);
            req.getSession().setAttribute("admin_name", username);
            String adminphone = AdminService.getAdminPhone(username);
            if (adminphone!=null && !adminphone.equals("")){
                req.getSession().setAttribute("admin_phone", adminphone);
            }
        } else {
            msg = new Message(-1,"登录失败");
            // 返回的内容转换为JSON后：{status:-1,result:"登录失败"}
        }
        // 4. 将数据转换为JSON
        String json = JsonUtil.toJSON(msg);
        // 5. 将JSON回复给Ajax
        return json;
    }
}
